import { ipcMain } from 'electron';
import { ExcelCsvHelper } from '../utils/ExcelCsvHelper';
import { IService } from './index';

/**
 * Excel导出服务类
 * 提供Excel文件导出功能的IPC接口
 */
export class ExportExcelService implements IService {
  /**
   * 初始化服务，注册IPC处理程序
   */
  async initialize(): Promise<void> {
    this.registerHandlers();
  }

  /**
   * 获取服务名称
   * @returns 服务名称
   */
  getName(): string {
    return 'export-excel';
  }

  /**
   * 注册IPC处理程序
   */
  private registerHandlers(): void {
    /**
     * 导出报告为Excel格式
     * @param event IPC事件对象
     * @param params 导出参数 { siteName, inputs, results, exportType }
     * @returns 导出结果或错误信息
     */
    ipcMain.handle('export-report-excel', async (event, params) => {
      try {
        console.log('收到Excel导出请求:', params);
        const result = await ExcelCsvHelper.exportToExcel(params);
        console.log('Excel导出结果:', result);
        return result;
      } catch (error: any) {
        console.error('Excel导出失败:', error);
        return { success: false, error: error.message };
      }
    });
  }
}